//=============================================================================
/**
 * @file	pkthln_run_local.h
 * @brief	マラソン
 * @date	2008.08.020
 */
//=============================================================================

#ifndef	__PKTHLN_RUN_LOCAL_H__
#define	__PKTHLN_RUN_LOCAL_H__

#include "../../pokethlon.h"
#include "../../pkthln_poke_act.h"

//ヒットチェックのリターンコード
typedef enum {
	HIT_RC_NONE = 0,
	HIT_RC_MAT,		//砂利床
	HIT_RC_UWALL,	//上側の壁にヒット
	HIT_RC_RWALL,	//右側の壁にヒット
	HIT_RC_DWALL,	//下側の壁にヒット
	HIT_RC_LWALL, 	//左側の壁にヒット
	HIT_RC_LU_VRT,	//左上頂点にヒット
	HIT_RC_RU_VRT,	//右上頂点にヒット
	HIT_RC_RD_VRT,	//右下頂点にヒット
	HIT_RC_LD_VRT,	//左下頂点にヒット
	//↓ここより、強制押し出し
	HIT_RC_UWALL_F,	//上側の壁にヒット
	HIT_RC_RWALL_F,	//右側の壁にヒット
	HIT_RC_DWALL_F,	//下側の壁にヒット
	HIT_RC_LWALL_F, //左側の壁にヒット
}HIT_RC;

typedef enum {
	CHG_BALL_NONE = 0,
	CHG_BALL_UP,
	CHG_BALL_DOWN,
}CHG_STATE;

typedef struct RUN_POKE_PARAM_tag
{
	float Accel1;
	float Accel2;
	float Power;
	float Stamina;
	float StaminaMax;
	u8 SpeedMatMax;
	u8 SpeedLowMax;
	u8 SpeedMax;
	u8 PanicTime;
	u8 FatState;
	u8 dummy[3];
}RUN_POKE_PARAM;

typedef struct RUN_POKE_tag
{
	//アクターポインタ
	POKE_ACT_PTR PokeActPtr[ENTRY_MAX];		//ポケモンアクター１チーム３匹
	//ポケごとの走行距離
	fx32 Len[ENTRY_MAX];
	//各ポケのパラメータ
	RUN_POKE_PARAM Param[ENTRY_MAX];
	//ステート
	PKTHLN_ACT_PTR	StateActPtr;
	//交換煙
	PKTHLN_ACT_PTR	SmogActPtr;
	//交換ボール
	PKTHLN_ACT_PTR	ChgBallActPtr;
	//ブースト
	PKTHLN_ACT_PTR	BoostActPtr;
	//座標
	VecFx32 Pos;
	//ステート
///	POKE_STATE State;

///	VecFx32 LastPoint;	//最終到達地点（親が見る）
///	VecFx32 NowPoint;	//現在地点（親が見る）
///	VecFx32 MoveVec;
	u8 Dir;
	u8 Fatigue;		//疲労状態
	u8 FatCount;	//疲労状態カウンタ
	u8 RunPokeIdx;		//現在の走行ポケインデックス	0〜2

	VecFx32 Speed;

	u8 Hit[4];		//他プレーヤポケとのヒット状況（自分のワークもあるが使用しない）
	u8 Round;
	u8 ChgFlg;
	u8 ChgState;
	u8 ChgStateLocal;
	u8 ChgSeq;		//交代シーケンサ
	u8 BallMvCount;
	u8 MoveMode;
	u8 PanicMode;
	u8 PanicCount;
	u8 MatOn;
	u8 FatStateLocal;
	u8 MoveModeLocal;
	u8 MaxRound;			//走行した最大距離（衝突とかで逆走した場合。再び更新しないように）
	u8 HitFrame;
	u8 MoveVecDcd;			//移動ベクトル決定処理有無
	u8 dummy;

	int TouchTime;	//タッチ時間
	VecFx32 TPos;	//タッチした座標
	VecFx32 LastTPos;	//タッチした座標

	BOOL DemoVanish;

	HIT_RC HitRc;

	u8 NetID;
	u8 RoundMinusFlg;
	//↓ここからＳＥ用
	u8 BoostTemp;
	u8 BoostSeFlg;

}RUN_POKE;

#endif	//__PKTHLN_RUN_LOCAL_H__
